#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <map>
#include <climits>
/*
https://www.nowcoder.com/test/question/f5a3b5ab02ed4202a8b54dfb76ad035e?pid=30440590&tid=45777216s
*/

using namespace std;

int64_t solve(int n,vector<int> &v){
    //总共n个人过河
    sort(v.begin(),v.begin()+n);
    int64_t ans=0;
    while(n>=4){
        //最轻的人，带最重的两个人过河
        //最轻和次轻将两个人一起运过去
        ans+=min(2*v[0]+v[n-1]+v[n-2],v[0]+v[1]*2+v[n-1]);
        n-=2;
    }
    if(n==3)
        ans+=v[1]+v[2]+v[0];
    else if(n==2){
        ans+=v[1];
    }else if(1==n){
        ans+=v[0];
    }
    return ans;
}

int main(){
    int t,n;
    cin >> t;
    while(t--){
        cin >> n;
        vector<int> v(n+5,0);
        for(int i=0;i<n;i++){
            cin >> v[i];
        }
        cout << solve(n,v) <<endl;
    }



    return 0;
}